package com.newcoder.community.util;


import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.DigestUtils;

import java.util.Map;
import java.util.UUID;

/**
 * @author edison
 * @version 2023
 * @date 2024/1/17 17:18
 */

public class CommunityUtil {


    // 生成随机字符串
    public static String generateUUID(){
        return UUID.randomUUID().toString().replaceAll("-","");
    }

    // MD5加密
    // hello -> abc123def456
    // hello + 3e4a8 -> abc123def456abc
    public static String md5(String key){
        if (StringUtils.isBlank(key)){
            return null;
        }
        return DigestUtils.md5DigestAsHex(key.getBytes());
    }

    // 将map转换为JSON字符串
    /**
     * @param code 状态码
     * @param msg 信息
     * @param map 数据,用于存储数据,如用户信息,帖子信息等
     * @return JSON字符串
     */
    public static String getJSONString(int code, String msg, Map<String,Object> map){
        JSONObject json = new JSONObject();
        json.put("code",code);
        json.put("msg",msg);
        // 将map中的数据放入json中
        if (map != null){
            for (String key : map.keySet()){
                json.put(key,map.get(key));
            }
        }
        return json.toJSONString();
    }

    // 重载,只传入code和msg
    public static String getJSONString(int code, String msg){
        return getJSONString(code,msg,null);
    }

    // 重载,只传入code
    public static String getJSONString(int code){
        return getJSONString(code,null,null);
    }

    // 测试
    public static void main(String[] args) {
        JSONObject json = new JSONObject();
        json.put("name","张三");
        json.put("age",25);
        System.out.println(getJSONString(0,"ok",json));
    }

}
